#ifndef PLAYLIST_H
#define PLAYLIST_H

#include <vector>

#include "playlist_fwd.h"
#include "mitem/media_item.h"


namespace EngineCore {

    class Playlist {
    public:
        typedef std::shared_ptr<MediaItem> MediaItemPtr;
        typedef std::vector<MediaItemPtr>  MediaItemCollection;

        Playlist() = default;

		template<typename Iterator>
        Playlist(Iterator begin, Iterator end)
            : mediaItems_(begin, end)
        {}

        MediaItemPtr const& get(MediaItemCollection::size_type i) {
            return mediaItems_[i];
        }

        MediaItemCollection::size_type count() const {
            return mediaItems_.size();
        }

    private:
        MediaItemCollection mediaItems_;
    };

}

#endif
